$(document).ready(function(){
	var lngDiv = $('#lng');
	var latDiv = $('#lat');
	var mapDiv = null;

	// dodanie potrzebnego div'a do <body/>
	latDiv.parents('dl').prepend('<dd><div id="dialog">'+
		'<div id="map" style="width:700px;height:380px;"></div>'+
		'<div style="clear:left; text-align:center;padding: 5px;">'+
			'<p class="small bottom">Przeciągnij i upuść marker na wybrany obszar lub ..</p>'+
			'<input id="geo-adress-city" type="text" value="Kraków" />'+
			'<input id="geolocal" type="button" value="Zlokalizuj adres!" />'+
			'<p class="small bottom">.. wpisz adres i kliknij "Zlokalizuj adres!"</p>'+
		'</div></div></dd>');

	var setLatlng = function(latlng) {
		lngDiv.val(latlng.lng());
		latDiv.val(latlng.lat());
	}

	var getLatlng = function() {
		var lat = latDiv.val();
		var lng = lngDiv.val();

		if (parseInt(lat) == 0 || parseInt(lng) == 0) {
			// wspolrzedne Krakowa
			lat = 50.03950183762877;
			lng = 19.9072265625;
		}

		return new GLatLng(lat, lng);
	}

	if (typeof GBrowserIsCompatible != 'function') {
		alert('Nie udało się zainicjować mapy google!');
		return;
	}

	if (GBrowserIsCompatible()) {

		var map = new GMap2(document.getElementById("map"));
		map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());

		var center = getLatlng();
		map.setCenter(center, 13);

		var marker = new GMarker(center, {draggable: true});
		
		GEvent.addListener(marker,'dragend',setLatlng);
		
		GEvent.addListener(marker,'dblclick',setLatlng);

		map.addOverlay(marker);
        
        // geolokalizacja
        var geocoder = new GClientGeocoder();
        $('#geolocal').click(function(){
        	var address = $('#geo-adress-city').val();
        	if (geocoder) {
        		geocoder.getLatLng(
        			address,
        			function(latlng) {
        				if (!latlng) {
        					alert(address + ', nie znaleziono!');
        				} else {
        					// usuwamy stary marker
        					map.removeOverlay(marker);
        					// centrujemy mape
        					map.setCenter(latlng, 13);
        					// ustaw parker o nowej pozycji
        					marker.setLatLng(latlng);
        					setLatlng(latlng);
        					map.addOverlay(marker);
        					// okienko z adresem!
        					marker.openInfoWindowHtml(address);
        				}
        			}
        		);
        	}
        });	        	
	}
});